import { constantRoutes, asyncRoutes } from '@/router'
const state = {
  // 初始值 我们可以用静态路由 - 因为静态路由都能看到
  routes: constantRoutes
}
const mutations = {
  // 设置路由 静态 + 动态（过滤过的路由）
  // 两个数组合并 怎么合并
  setRoutes(state, otherRoutes) {
    state.routes = [...constantRoutes, ...otherRoutes]
  }
}
const actions = {
  // asyncRoutes menus进行过滤
  filterRoutes({ commit }, menus) {
    // console.log(asyncRoutes, menus)
    // 1. 过滤额
    const otherRoutes = asyncRoutes.filter((item) => {
      //   console.log(menus, item.children[0].name)
      //   if (menus.includes(item.children[0].name)) {
      //     return true
      //   } else {
      //     return false
      //   }
      return menus.includes(item.children[0].name)
    })
    // 2. 调用mutation更新vuex
    commit('setRoutes', otherRoutes)
    return otherRoutes
  }
}

// 忘记了vuex核心的东西看文档，或者项目中已有的也可以参考
// 字段是固定的不是乱写 比如action就不行，一定是actions
export default {
  state,
  mutations,
  actions,
  namespaced: true
}
